//语义版本控制
//A basically standard that a lot of Node.js packages follow.
//It allows us to know what kind of changes have occurred in the updated version of the package.

//1.open package.json

// "dependencies": {
//     "lodash": "^4.17.15" 
//   }
//4.17.15 --> major.minor.patch
//patch update means some bugs fixed;
//minor update means it adds new functionality and it might deprecated some of the old functionality but you can still use it, so it's a non-breaking change update;
//major update means a major update pushed out to lodash and there was a breaking change so that means the new version is not compatible with the code for the old version;
//^ means a minor or a patch update would download the newest version, but major wouldn't;
//~ means only want patch updates.
//no symbols mean that keeps the current version forever.
